package com.sojson.project.sys.menu.entity.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.sojson.base.impl.BaseBean;
import com.sojson.enums.core.EGeneralStatus;
import com.sojson.enums.core.EMenuContentType;
import com.sojson.enums.core.EMenuIsCache;
import com.sojson.enums.core.EMenuIsFrame;
import com.sojson.enums.core.EMenuVisible;
import com.sojson.util.StringUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 菜单权限表Bean
 * 
 * @author liu
 * @date 2022-09-08
 */
@Data
@ApiModel("菜单权限表Bean")
@TableName("sys_menu")
public class Menu extends BaseBean {

    private static final long serialVersionUID = 1L;
    /** 菜单主键 */
    @ApiModelProperty("菜单主键")
    private String id;
    /** 菜单名称 */
    @ApiModelProperty("菜单名称")
    private String name;
    /** 父菜单ID */
    @ApiModelProperty("父菜单ID")
    private String parentId;
    /** 显示顺序 */
    @ApiModelProperty("显示顺序")
    private Integer sortNum;
    /** 请求地址 */
    @ApiModelProperty("请求地址")
    private String path;
    /** 路由地址 */
    @ApiModelProperty("路由地址")
    private String component;
    /** 是否为外链（1是2否） */
    @ApiModelProperty("是否为外链（1是2否）")
    private Integer isFrame;
    /** 是否缓存（1缓存 2不缓存） */
    @ApiModelProperty("是否缓存（1缓存 2不缓存）")
    private Integer isCache;
    /** 菜单环境(web_admin:后台管理员,web_merchant:后台商户,app_user:App用户,xcx_user:小程序用户) */
    @ApiModelProperty("菜单环境(web_admin:后台管理员,web_merchant:后台商户,app_user:App用户,xcx_user:小程序用户)")
    private String environment;
    /** 菜单类型（1目录 2菜单 3按钮） */
    @ApiModelProperty("菜单类型（1目录 2菜单 3按钮）")
    private Integer type;
    /** 内容类型(1:链接,2:商品列表类型ID,3:商品详情ID,4:文章ID,5:活动ID) */
    @ApiModelProperty("内容类型(1:链接,2:商品列表类型ID,3:商品详情ID,4:文章ID,5:活动ID)")
    private Integer contentType;
    /** 内容信息(商品列表为商品类型ID,商品详情为商品ID,文章为文章ID,活动为活动ID) */
    @ApiModelProperty("内容信息(商品列表为商品类型ID,商品详情为商品ID,文章为文章ID,活动为活动ID)")
    private String contentMsg;
    /** 菜单状态（1显示 2隐藏） */
    @ApiModelProperty("菜单状态（1显示 2隐藏）")
    private Integer visible;
    /** 菜单状态（1正常 2停用） */
    @ApiModelProperty("菜单状态（1正常 2停用）")
    private Integer status;
    /** 权限标识 */
    @ApiModelProperty("权限标识")
    private String perms;
    /** 菜单图标 */
    @ApiModelProperty("菜单图标")
    private String icon;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;

    public Menu() {

    }

    /**
     * 插入初始化
     */
    public void insertInit() {
        if (StringUtil.isBlank(getSortNum())) {
            setSortNum(100);
        }
        if (StringUtil.isBlank(getStatus())) {
            setStatus(EGeneralStatus.NORMAL.getCode());
        }
        if (StringUtil.isBlank(getPath())) {
            setPath("#");
        }
        if (StringUtil.isBlank(getIsCache())) {
            setIsCache(EMenuIsCache.YES.getCode());
        }
        if (StringUtil.isBlank(getVisible())) {
            setVisible(EMenuVisible.YES.getCode());
        }
        if (StringUtil.isBlank(getIcon())) {
            setIcon("#");
        }
        if (StringUtil.isBlank(getIsFrame())) {
            setIsFrame(EMenuIsFrame.NO.getCode());
        }
        if (StringUtil.isBlank(getContentType())) {
            setContentType(EMenuContentType.URL.getCode());
        }
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        setUpdateNull();
    }

    /**
     * 更新初始化
     */
    public void setUpdateNull() {
        setStatus(null);
        setEnvironment(null);
    }

}